namespace Marketplace.Engine.Repository.Generic
{
    /// <summary>
    /// Repository class for basic actions
    /// </summary>
    /// <typeparam name="T"></typeparam>
    public interface IRepository<T> where  T : class 
    {
        ListResult<T> GetList(ListCondition<T> listCondition);
        T GetById(object id);

        void Insert(T t);
        void Delete(T t);
        void Delete(object id);
        void Update(T t);

        void BeginTransaction();
        void Commit();
        void Rollback();
    }
}